#ifndef _TREETEST_H
#define	_TREETEST_H

#include <cppunit/TestFixture.h>
#include <cppunit/extensions/HelperMacros.h>
#include "tree/Tree.h"

namespace etu {

using etu::tree::Tree;

class TreeTest : public CPPUNIT_NS::TestFixture {
    CPPUNIT_TEST_SUITE(TreeTest);
    CPPUNIT_TEST(iteratorTest);
    CPPUNIT_TEST(sizeTest);
    CPPUNIT_TEST(rootTest);
    CPPUNIT_TEST(emptynessTest);
    CPPUNIT_TEST(childsTest);
    CPPUNIT_TEST(contentTest);
    CPPUNIT_TEST(parentTest);
    CPPUNIT_TEST(addTest);
    CPPUNIT_TEST(removeTest);
    CPPUNIT_TEST(serializationTest);
    CPPUNIT_TEST_SUITE_END();

    Tree<int>* tree;

public:
    void setUp();
    void tearDown();

protected:
    void sizeTest();
    void rootTest();
    void emptynessTest();
    void childsTest();
    void contentTest();
    void iteratorTest();
    void parentTest();
    void addTest();
    void removeTest();
    void serializationTest();
};

CPPUNIT_TEST_SUITE_REGISTRATION(TreeTest);

}

#endif	/* _TREETEST_H */

